using System;
using System.Collections.Generic;
using System.ComponentModel;
using Microsoft.Ccr.Core;
using Microsoft.Dss.Core.Attributes;
using Microsoft.Dss.ServiceModel.Dssp;
using Microsoft.Dss.ServiceModel.DsspServiceBase;
using W3C.Soap;

namespace BRS.AMEE.FeasibilityStudy {
    /// <summary>
    /// DummyService contract class
    /// </summary>
    public sealed class Contract {
        /// <summary>
        /// DSS contract identifer for DummyService
        /// </summary>
        [DataMember]
        public const string Identifier = "http://schemas.microsoft.com/2010/06/dummyservice.html";
    }

    /// <summary>
    /// DummyService state
    /// </summary>
    [DataContract]
    public class DummyServiceState {
    }

    /// <summary>
    /// DummyService main operations port
    /// </summary>
    [ServicePort]
    public class DummyServiceOperations : PortSet<DsspDefaultLookup, DsspDefaultDrop, Get, Subscribe> {
    }

    /// <summary>
    /// DummyService get operation
    /// </summary>
    public class Get : Get<GetRequestType, PortSet<DummyServiceState, Fault>> {
        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        public Get() {
        }

        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        /// <param name="body">the request message body</param>
        public Get(GetRequestType body)
            : base(body) {
        }

        /// <summary>
        /// Creates a new instance of Get
        /// </summary>
        /// <param name="body">the request message body</param>
        /// <param name="responsePort">the response port for the request</param>
        public Get(GetRequestType body, PortSet<DummyServiceState, Fault> responsePort)
            : base(body, responsePort) {
        }
    }

    /// <summary>
    /// DummyService subscribe operation
    /// </summary>
    public class Subscribe : Subscribe<SubscribeRequestType, PortSet<SubscribeResponseType, Fault>> {
        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        public Subscribe() {
        }

        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        /// <param name="body">the request message body</param>
        public Subscribe(SubscribeRequestType body)
            : base(body) {
        }

        /// <summary>
        /// Creates a new instance of Subscribe
        /// </summary>
        /// <param name="body">the request message body</param>
        /// <param name="responsePort">the response port for the request</param>
        public Subscribe(SubscribeRequestType body, PortSet<SubscribeResponseType, Fault> responsePort)
            : base(body, responsePort) {
        }
    }
}


